#ifndef _HCI_STRUCT_H
#define _HCI_STRUCT_H

#ifdef __cplusplus
extern "C"
{
#endif

#if defined(_WIN32)
#define PACKED
#pragma pack(push)
#pragma pack(1)  // 1 byte alignment
#else
#define PACKED __attribute__((packed, aligned(1)))
#endif

#define HCI_MAX_DISK_NUM 8
#define MAX_STRING_32_LEN 32
#define MAX_STRING_64_LEN 64
#define MAX_DEV_NAME_LEN 64
#define MAX_USER_PWD_LEN 32
#define HCI_MAX_TIME_NUM 7
#define HCI_MAX_USER_NUM 3
#define HCI_MAX_GROUPTIME_NUM 20
#define HCI_MAX_COM_NUM 2
#define HCI_MAX_MASK_NUM 9  // 视频屏蔽区域个数

#define HCI_DISABLE 0
#define HCI_ENABLE 1
#define HCI_MAX_FILE_NUM 1024

#ifndef DETECT_AREA_NUM
#define DETECT_AREA_NUM 4  // 侦测路数
#endif

    typedef enum _HCI_DISK_TYPE_E
    {
        DISK_NONE_E = 0,
        DISK_USB_E = 1,  //"/usb"
        DISK_HDD_E = 2,  //
        DISK_NETDISK_E = 3,
        DISK_EMMC_E = 4,  //"/disk"
        DISK_SD_E = 5,    // "/sd"
    } HCI_DISK_TYPE_E;

    typedef enum _HCI_UPLOADEPIC_TYPE_E
    {
        UPLOADE_PIC_FACE = 0,     // 人脸图
        UPLOADE_PIC_BG = 1,       // 背景图
        UPLOADE_PIC_FACE_BG = 2,  // 人脸图+背景图
    } HCI_UPLOADEPIC_TYPE_E;

    // configuration type
    typedef enum _HCI_IOCTL_TYPE_E
    {
        IOCTL_GET_ALARMIN,      // 报警输入
        IOCTL_GET_CDNS,         // 光敏获取
        IOCTL_SET_ALARMOUT1,    // 报警输出1控制
        IOCTL_SET_ALARMOUT2,    // 报警输出2控制
        IOCTL_SET_485RxTx,      // 485 收发状态控制
        IOCTL_SET_LCD_LIGHT,    // 屏背光控制
        IOCTL_SET_IR,           // 红外灯控制
        IOCTL_SET_WLED,         // 白光灯控制
        IOCTL_SET_USBPOWER,     // USB电源控制
        IOCTL_SET_WARNLED,      // 警告灯
        IOCTL_SET_LINKLED,      // 网络状态指示灯
        IOCTL_SET_RLED,         // 红色状态灯控制
        IOCTL_SET_GLED,         // 绿色状态灯控制
        IOCTL_SET_BLED,         // 蓝色状态灯控制
        IOCTL_SET_BREATHLIGHT,  // 呼吸灯控制
        IOCTL_SET_BL,           // 背光版
        MSG_SEND_FACERXINFO = 100,
        IOCTL_SET_END,
    } HCI_IOCTL_TYPE_E;

    typedef enum _HCI_BREATHLIGHT_MODE_E
    {
        HCI_BREATHLIGHT_DISENABLE = 0x00,     // 关闭灯
        HCI_BREATHLIGHT_FLICKER_LOOP = 0x01,  // 循环闪烁
        HCI_BREATHLIGHT_FLICKER_ONCE = 0x02,  // 单次闪烁
        HCI_BREATHLIGHT_LOOP = 0x03,          // 循环呼吸
        HCI_BREATHLIGHT_ENABLE = 0x04,        // 灯常亮

        HCI_BREATHLIGHT_NONE,  // 无作用
    } HCI_BREATHLIGHT_MODE_E;

    typedef struct _HCI_BREATHLIGHT_CRT_S
    {
        HCI_BREATHLIGHT_MODE_E enMode;  // 呼吸灯模式
        INT dwCycle;                    // 周期 ms为单位
        CHAR res[24];
    } PACKED HCI_BREATHLIGHT_CRT_S;

    // 白光控制
    typedef enum _HCI_WLED_TYPE_E
    {
        WLED_CLOSE = 0,            // 从不开启
        WLED_LINK_FACE = 1,        // 联动人脸控制
        WLED_LINK_MOTION = 2,      // 联动移动侦测
        WLED_LINK_TIME = 3,        // 联动时间控制
        WLED_LINK_FACETIME = 4,    // 联动人脸时间控制
        WLED_LINK_MOTIONTIME = 5,  // 联动移动侦测时间控制
    } HCI_WLED_TYPE_E;

    // 音频编码算法
    typedef enum _HCI_AENC_TYPE_E
    {
        AENC_NONE = 0x0,
        AENC_G726 = 0x01,
        AENC_G722 = 0x02,
        AENC_G711A = 0x03,
        AENC_ADPCM = 0x04,
        AENC_MP3 = 0x05,
        AENC_PCM = 0x06,
        AENC_G711U = 0x07,
        AENC_AACLC = 0x08,
    } HCI_AENC_TYPE_E;

    // 音频采样率
    typedef enum _HCI_SAMPLERATE_E
    {
        SAMPLE_RATE_8000 = 8000,    // 8kHz
        SAMPLE_RATE_11025 = 11025,  // 11.025kHz
        SAMPLE_RATE_16000 = 16000,  // 16kHz
        SAMPLE_RATE_22050 = 22050,  // 22.050kHz
        SAMPLE_RATE_24000 = 24000,  // 24kHz
        SAMPLE_RATE_32000 = 32000,  // 32kHz
        SAMPLE_RATE_44100 = 44100,  // 44.1kHz
        SAMPLE_RATE_48000 = 48000,  // 48kHz
    } HCI_SAMPLERATE_E;

    // 音频编码码率(G726)
    typedef enum _HCI_G726_BPS_E
    {
        BPS_G726_16K = 16000,
        BPS_G726_24K = 24000,
        BPS_G726_32K = 32000,
        BPS_G726_40K = 40000,
        BPS_G726_128K = 128000,
    } HCI_G726_BPS_E;

    // lcd  size
    typedef enum _HCI_LCD_SIZE_E
    {
        LCD_NONE = 0,
        LCD_SIZE_8,
        LCD_SIZE_7,
        LCD_SIZE_4_3,
        LCD_SIZE_5,
        LCD_SIZE_7_90,  // 旋转90°
        LCD_SIZE_5_480X854,
        LCD_SIZE_7_800X480,
        LCD_SIZE_7_180,  // 旋转180°
    } HCI_LCD_SIZE;

    // 日志的操作命令
    typedef enum _M_DOLOG_TYPE_E
    {
        M_DOLOG_CLEAR = 0,      // 清除日志, 但是不清楚复位相关的日志信息
        M_DOLOG_CLEARALL = 1,   // 清除所有日志信息
        M_DOLOG_WRITE = 2,      // 写日志,  HCI_WRITE_LOG_INFO_S
        M_DOLOG_SEARCH = 3,     // 查询日志信息
        M_DOLOG_GETLOGNUM = 4,  // 获取日志信息条目
    } M_DOLOG_TYPE_E;

    typedef enum _M_LOG_TYPE_E
    {
        M_LOG_TYPE_NONE = 0x00,       // 搜索时, 代表查询所有
        M_LOG_TYPE_SENSOR = 0x01,     // 报警输入
        M_LOG_TYPE_MOTION = 0x02,     // 移动侦测
        M_LOG_TYPE_VILOST = 0x04,     // 视频丢失
        M_LOG_TYPE_CROSSAREA = 0x08,  // 区域入侵
        M_LOG_TYPE_PIR = 0x09,
        M_LOG_TYPE_NET = 0x10,
        M_LOG_TYPE_TIMER = 0x20,
        M_LOG_TYPE_MANUAL = 0x40,
        M_LOG_TYPE_POWERON = 0x41,   // 设备开机
        M_LOG_TYPE_POWEROFF = 0x42,  // 设备关机

        M_LOG_TYPE_MANUAL_SW_RST = 0x80,  // 软复位
        M_LOG_TYPE_MANUAL_HW_RST = 0x81,  // 硬件复位
        M_LOG_TYPE_MANUAL_GO_RST = 0x82,  // NO USE
        M_LOG_TYPE_PARAM_FILE_RST = 0x83,
        M_LOG_TYPE_AUTO_RST = 0x84,  // NO USE
        M_LOG_TYPE_MANUAL_PTZ_RST = 0x85,
        M_LOG_TYPE_VENC_ERR = 0x86,
        M_LOG_TYPE_SHELTER = 0x88,
        M_LOG_TYPE_PULL_OUT_SD_CARD = 0X89,

        M_LOG_TYPE_MOTORCYCLE = 0x98,    // 电动车警告
        M_LOG_TYPE_LEAVETHEPOST = 0x99,  // 人员离岗

        M_LOG_ALARMFINISH_TYPE_NONE = 0x8000,
        M_LOG_ALARMFINISH_TYPE_SENSOR = 0x8001,  // 报警消失
        M_LOG_ALARMFINISH_TYPE_MOTION = 0x8002,
        M_LOG_ALARMFINISH_TYPE_VILOST = 0x8004,
        M_LOG_ALARMFINISH_TYPE_RF = 0x8008,
        M_LOG_ALARMFINISH_TYPE_PIR = 0x8009,
        M_LOG_ALARMFINISH_TYPE_NET = 0x8010,
        M_LOG_ALARMFINISH_TYPE_TIMER = 0x8020,
        M_LOG_ALARMFINISH_TYPE_MANUAL = 0x8040,
        M_LOG_ALARMFINISH_TYPE_SHELTER = 0x8080,

    } M_LOG_TYPE_E;

    typedef enum _HCM_SNAPMODE_E
    {
        MODE_LEAVE_QUALITY = 0X00,   // 离开后-质量选优
        MODE_FAST_LEAVE = 0X01,      // 快速+离开后
        MODE_INTERVAL_TIME = 0X02,   // 间隔抓拍-秒单位
        MODE_INTERVAL_FRAME = 0X03,  // 间隔抓拍-帧为单位
        MODE_SINGLE = 0X04,          // 单人模式
        MODE_LEAVE_CMPFRIST = 0X05,  // 离开后抓拍识别优先
    } HCM_SNAPMODE_E;

    typedef enum _HCM_PIC_LOADMODE_E
    {
        LOADMODE_CORP = 0X00,        // 扣人脸图
        LOADMODE_YT = 0X01,          // 原图
        LOADMODE_CORP_YT = 0X02,     // 原图 + 人脸图
        LOADMODE_CORP_BODY = 0X03,   // 人脸图 + 人形
        LOADMODE_CORP_YT_BY = 0X04,  // 原图 + 人形 + 原图
    } HCM_PIC_LOADMODE_E;

    typedef enum _HCM_ALARM_LIST_TYPE_E
    {
        ALARM_TYPE_WHITELIST = 0X00,  // 白名单报警
        ALARM_TYPE_BLACKLIST = 0X01,  // 黑名单报警
        ALARM_TYPE_TEMP = 0X02,       // 高温人报警
        ALARM_TYPE_NULLLIST = 0X03,   // 陌生人报警
        ALARM_TYPE_VIPLIST = 0X04,    // VIP名单报警
        ALARM_TYPE_WHITE_VIP = 0X05,  // 白名单或vip报警
    } HCM_ALARM_LIST_TYPE_E;

    typedef enum _HCM_DISK_STATUS_E
    {
        HCM_DISK_STAT_NONE = 0,    // 未识别
        HCM_DISK_STAT_OK,          // 读写正常
        HCM_DISK_STAT_NEEDFORMAT,  // 需要格式化
        HCM_DISK_STAT_FORMATING,   // 正在格式化
        HCM_DISK_STAT_ERR,         // 异常
    } HCM_DISK_STATUS_E;

    typedef struct _HCI_DISK_INFO_S
    {
        HCI_DISK_TYPE_E nDiskType;  // HCI_DISK_TYPE_E
        UCHAR cDiskExist;           // 磁盘是否存在
        UCHAR cDiskNo;              // 磁盘号, 取值 0 ~ HCI_MAX_DISK_NUM - 1
        UCHAR cDiskGroup;           // 属于哪个盘组 1 ~ MAX_DISK_GROUP
        UINT dwDiskStatus;          // 0: 活动 ，1: 休眠 ，2: 不正常
        UINT nAllCapability;        // 总容量
        UINT nFreeCapability;       // 空余容量
        CHAR ucMountPath[32];       // 挂载目录
        UCHAR cRes[12];
    } PACKED HCI_DISK_INFO_S;

    typedef struct _HCI_STORAGE_S
    {
        UINT nSize;
        UINT nLocalDiskNum;
        HCI_DISK_INFO_S stLocalDisk[HCI_MAX_DISK_NUM];
        UCHAR ucRes[256];
    } PACKED HCI_STORAGE_S;

    // HCI_CFG_TIME
    typedef struct _HCI_DATE_S
    {
        UINT second : 6;  // 秒:  0 ~ 59
        UINT minute : 6;  // 分:  0 ~ 59
        UINT hour : 5;    // 时:  0 ~ 23
        UINT day : 5;     // 日:  1 ~ 31
        UINT month : 4;   // 月:  1 ~ 12
        UINT year : 6;    // 年:  2000 ~
    } HCI_DATE_S;

    typedef struct _HCI_TIME_S
    {
        UINT week : 5;       // 星期
        UINT millisec : 10;  // 毫秒: 0 ~ 999
        UINT second : 6;     // 秒:	0 ~ 59
        UINT minute : 6;     // 分:   0 ~ 59
        UINT hour : 5;       // 时:	0 ~ 23
    } HCI_TIME_S;

    typedef struct _HCI_DATE_TIME_S
    {
        SHORT min;
        SHORT hour;
        SHORT day;
        SHORT mon;
        SHORT dayofweek;
        SHORT year;
    } PACKED HCI_DATE_TIME_S;

    typedef struct _HCI_DECTECT_RECT_S
    {
        UCHAR ucEnable;
        HCI_AREA_S stRect;
        UCHAR ucRes[32];
    } HCI_DECTECT_RECT_S;

    typedef struct _HCI_CHECK_TIME_S
    {
        UCHAR bEnable;  // 是否检测
        UCHAR ucRes[3];
        HCI_TIME_S stBgnTime;  // 开始时间
        HCI_TIME_S stEndTime;  // 结束时间
    } HCI_CHECK_TIME_S;

    // 计划时间: 周计划时间 HCI_CFG_CHECKON_TIME
    typedef struct _HCI_SCHWEEK_TIME_S
    {
        HCI_CHECK_TIME_S stSegTime[7][4];  // 0: 星期天，1: 周一，2: 周二
    } HCI_SCHWEEK_TIME_S;

    typedef struct _HCI_AREA_RECT_S
    {
        SHORT x;  // X坐标
        SHORT y;  // Y坐标
        SHORT w;  // 宽度
        SHORT h;  // 高度
    } HCI_AREA_RECT_S;

//===============log============================
#define MAX_LOG_COUNT 512

    // M_DOLOG_WRITE
    typedef struct _HCI_WRITE_LOG_INFO_S
    {
        M_LOG_TYPE_E eLogType;
        UINT nChn;
        UCHAR cRes[32];
    } PACKED HCI_WRITE_LOG_INFO_S;

    // 返回的日志信息
    typedef struct _HCILOG_SEARCH_INFO_S
    {
        HCI_DATE_S stTime;
        UINT eLogType;
        UINT nChn;
    } PACKED HCILOG_SEARCH_INFO_S;

    // M_DOLOG_SEARCH
    typedef struct HCI_SEARCH_LOG_S
    {
        HCILOG_SEARCH_INFO_S stLog[MAX_LOG_COUNT];
        HCI_DATE_S stStartTime;
        HCI_DATE_S stEndTime;
        UINT nmaxlog;
        M_LOG_TYPE_E eLogType;
    } PACKED HCI_SEARCH_LOG_S;

    typedef struct HCI_SPZ_DATA_S  // size  128
    {
        UINT nspzCnt;
        UCHAR res[124];

    } PACKED HCI_SPZ_DATA;

    //==================================================================

    // HCI_CFG_SYS
    typedef struct _HCM_SYSTEM_INFO_S
    {
        CHAR szDevName[MAX_STRING_64_LEN];  // 设备名称

        CHAR szDevVer[MAX_STRING_64_LEN];  // 设备版本 (只读)

        HCI_DATE_S stDevCurTime;  // 设备端当前时间(只读)

        UCHAR uclanguage;      // 语言  0中文 1英文 2 繁体 3 日语
        UCHAR byViSensneMode;  // 设备视频场景模式 0 IPC 1 人脸抓拍 2 车牌抓拍
        UCHAR byUSBMode;       // USB 模式 0 host 1 uvc
        UCHAR byDZoomEnable;   // 数字变倍是否启用
        UCHAR szAiVer[MAX_STRING_32_LEN];
        UCHAR szUiVer[MAX_STRING_32_LEN];
        UCHAR szPlatformVer[MAX_STRING_32_LEN];
        UCHAR szusrPlatformVer[MAX_STRING_32_LEN];
        UCHAR ucRes[4];

    } PACKED HCM_SYSTEM_INFO_S;

    // HCI_CFG_DEVICE  function
    typedef struct _HCI_DEVICE_INFO_S
    {
        CHAR szDevID[MAX_STRING_32_LEN];     // 设备ID DevSerial
        UCHAR ucTempModules;                 // 0 close
        UCHAR ucLCDSize;                     // HCI_LCD_SIZE
        UCHAR szDevType[MAX_STRING_32_LEN];  // 设备类型
        UCHAR szKernelVer[MAX_STRING_32_LEN];
        UCHAR ucRes[192];
    } PACKED HCI_DEVICE_INFO_S;

    // HCI_CONFIG_TYPE_E is  HCI_CFG_NET
    typedef struct _HCI_NETBASE_S
    {
        INT ibDhcp;          // 是否使用DHCP
        UINT uiIPAddr;       // IP地址
        UINT uiSubmask;      // 子网掩码
        UINT uiGateway;      // 网关
        UCHAR ucMacAddr[6];  // MAC地址
        UCHAR ucDisDhcpDns;  // dis dhcp dns, ibDhcp 开启才有效
        UCHAR res1[1];
        UINT uiDNS1;        // DNS 1
        UINT uiDNS2;        // DNS 2
        UINT uiWebPort;     // WEB服务端口
        UINT uiOnvifPort;   // ONVIF 端口
        UINT dwOnLineTime;  // 在线时间
        UCHAR ucRes[400];   //
    } PACKED HCI_NETBASE_S;

    // 命令: HCI_CFG_USER
    typedef struct _HCI_USERINFO_S
    {
        INT iExist;
        UINT uiPriority;
        CHAR szUserName[MAX_STRING_32_LEN];
        CHAR szPassword[MAX_STRING_32_LEN];

        CHAR szPassDoor[MAX_STRING_32_LEN];
        UCHAR ucRes[260 - 32];
    } PACKED HCI_USERINFO_S;

    // HCI_CFG_FACEDETEC
    typedef struct _HCM_FACE_DETECT_S
    {
        UCHAR ucEnable;           // 开关
        UCHAR ucquality;          // 人脸质量阈值
        UCHAR ucSnapMode;         // 抓拍模式 HCM_SNAPMODE_E
        UCHAR ucTrackEnable;      // 人脸跟踪    0:关闭 1:开启
        UCHAR ucSnapNum;          // 最大抓拍次数
        UCHAR ucMaskCheckEnable;  // 口罩检测
        UCHAR ucUploadePicMode;  // 图片上传  , 0 人脸图  , 1 背景图, 2 人脸+背景图 3
                                 // 人脸+人形 4、人脸+人行+背景图
        UCHAR ucLivenessEnable;  // 活体检测开关
        INT iFaceMinSize;        // 人脸识别最小尺寸(30~300)
        INT iFaceMaxSize;        // 人脸识别最大尺寸(300~700)

        HCI_DECTECT_RECT_S stDetectRect;  // 检测区域设置
        HCI_CHECK_TIME_S stDetectTime;    // 检测时间控制
        FLOAT fLivescore;                 // 活体阈值(0.01 ~ 0.99)

        INT iIntervalFrame;      // 间隔帧数---间隔抓拍，秒为单位(10~1500)
        UCHAR ucIntervalTime;    // 间隔时间---间隔抓拍，秒为单位(1~30)
        UCHAR ucChooseMode;      // 选优模式， 0 质量选优, 角度选优
        UCHAR ucFaceAreaExpand;  // 人脸抠图扩展系数(0~10)
        UCHAR byAttribute;       // 人脸属性开关 0 关 1 开

        INT nYaw;                // 人脸左右偏转度，偏航角
        INT nPitch;              // 人脸上下角度，俯仰角
        INT nRoll;               // 人脸头歪的角度，翻滚角
        UCHAR nFacePicQual;      // 人脸图片编码质量(0~99)
        UCHAR nFramePicQual;     // 原图编码质量(0~90)
        UCHAR nBodyPicQual;      // 人行编码质量(0~90)
        UCHAR ucBodyAreaExpand;  // 人行抠图扩展系数(0~10)
        UCHAR nExposureMode;     // 0 普通场景 , 1 逆光场景
        UCHAR nPicUpload;  // 图片上传类型 0xff无 , 0x1 上传人脸图, 0x2 上传人形图, 0x4
                           // 上传原图

        HCI_AREA_S szDetectRectExt[7];  // 人脸区域设置扩展
        INT nWedIrMinFace;              // 小石 灯光控制最小人脸像素
        UCHAR ucRes[482 - 56 - 4];
        // UCHAR  byRes[16];
    } PACKED HCM_FACE_DETECT_S;

    // 人脸控制 HCI_CFG_FACECTL
    typedef struct _AI_FACE_CTL_S
    {
        UCHAR ucCmpEnable;             // 比对控制开关
        UCHAR ucIoEnable;              // IO输出使能
        UCHAR ucIoType;                // IO输出类型 IO输出模式 常开 常闭
        UCHAR ucalarmlistType;         // 报警名单类型
        UINT sIoTime;                  // IO输出时间 ms
        HCI_CHECK_TIME_S stcheckTime;  // 布防时间
        SHORT sCmpMode;                // 识别模式
        SHORT sCmpNum;                 // 识别次数 (1-10)
        UCHAR ucAudioCtlEnable;
        UCHAR ucIoMode;         //
        UCHAR ucUiDisPlayMode;  // 0 显示当前抓拍图， 1 显示底库图片
        UCHAR ucTempType;       // 0 为摄氏度 1 华氏度
        FLOAT fCmpSore;         // 比对阈值(0.0 ~ 100.0)
        UINT sIo2Time;          // IO输出时间 ms
        UCHAR ucIo2Enable;      // IO输出2使能
        UCHAR ucIo2Type;        // IO输出2 类型 IO输出模式 常开 常闭

        UCHAR ucLcdDisplayMode;    // 0 无人后关闭显示,  1一直显示  //默认0
        SHORT sLcdCloseTime;       // 无人后多久关闭显示  10 ~ 600 秒, 默认30秒
        UCHAR ucWLedMode;          // HCI_WLED_TYPE_E 默认 WLED_LINK_FACE //
        SHORT sLedFaceTime;        // 无人后多久关闭led  10 ~ 600 秒, 默认30秒
        SHORT sLedMotionTime;      // 无移动物体后多久关闭led  10 ~ 600 秒, 默认30秒
        HCI_TIME_S stWledDayTime;  // 白光灯时间模式下       , 白天 关闭白光灯
        HCI_TIME_S stWledNigTime;  // 白光灯时间模式下 晚上 开启白光灯

        FLOAT fAlarmTempValue;         // default 37.3
        HCI_AREA_S stTempCheckRect;    // 温度检测区域设置
        UCHAR ucTempEnable;            // 是否开启温度模块 0 关闭   , 1 开启
        UINT uiTempMinFaceSize;        // 测温 最小像素  default 300    (0-1080)
        UINT uiTempMaxFaceSize;        // 测温 最大像素 default 900 (500-1080)
        UCHAR ucScreenLcdTime;         // 屏保刷新时间
        UCHAR ucUiShowUsrName;         // 识别通过时是否显示人名
        HCI_TIME_S stScreenstartTime;  // 屏保起始时间
        HCI_TIME_S stScreenendTime;    // 屏保结束时间
        INT ntofExp;                   // tof ?л????   (1~200)
        UCHAR ucRes1[8];
        UCHAR ucRes[512];
    } PACKED AI_FACE_CTL_S;

    typedef struct _HCM_AI_VERSION_INFO_S
    {
        CHAR szAiLib_version[64];
        CHAR szModel_version[64];
        UCHAR ucLic;
        UCHAR ucRes[255];
    } PACKED HCM_AI_VERSION_INFO_S;

    // HCI_CFG_HTTP
    typedef struct _CHM_HTTP_CONFIG_S  // 1948
    {
        UCHAR ucEnable;            // 0 disable  1 enable
        UCHAR ucUploadeImgEnable;  // 0  disable  1 enable
        UCHAR ucSupNetSend;        //?????????? 0  disable  1 enable
        UCHAR res1[1];
        INT serverport;
        CHAR serverip[128];  //(??????)

        INT wsServerPort;
        CHAR wsServerIp[128];  //(或域名)
        INT nHttpClientCode;
        UCHAR szIpcAddr1[32];
        UCHAR szIpcAddr2[32];
        CHAR szData[800];
        UCHAR ucRes[1048];  // 1592
    } PACKED HCM_HTTP_CONFIG_S;

    // 功能: 定时重启    , HCI_CFG_TIMEREBOOT
    typedef struct _TIME_REBOOT_S
    {
        UCHAR ucEnable;  // 0: 关闭         1: 每小时	  2: 每天		4: 每周

        HCI_TIME_S stTime;  // 定时重启时间

        UCHAR ucRes[128];
    } PACKED TIME_REBOOT_S;

    // NTP HCI_CFG_NTP
    typedef struct _HCM_NTP_S
    {
        // 属性
        UCHAR ucEnable;                       // 0 disable  1 enable
        UINT unTimeZone;                      // 时区
        CHAR szServerUrl[MAX_STRING_64_LEN];  // NTP 域名地址
        UINT unPort;                          // 端口
        UINT unIntervalTime;                  // 校时间隔

        UCHAR byRes[128];

    } PACKED HCM_NTP_S;

    // Factory
    typedef struct _HCM_Factory_S
    {
        UCHAR ucNetEnable;      // 0 不恢复网络参数  ,      1 恢复网络参数
        UCHAR ucUsrInfoEnable;  // 0 不恢复用户参数  ,      1 恢复用户参数

        UCHAR byRes[128];

    } PACKED HCM_Factory_S;

    typedef enum _E_VENC_TYPE
    {
        E_VENC_NONE = 0x0,
        E_VENC_H264 = 0x01,
        E_VENC_MPEG4 = 0x02,
        E_VENC_MJPEG = 0x03,
        E_VENC_JPEG = 0x04,
        E_VENC_H265 = 0x05,
        E_VENC_H265_S = 0x06,
    } E_VENC_TYPE;

    // HCI_CFG_VIDEO nch = 0 为主码流  1 为副码流
    typedef struct _HCM_VENC_INFO_S
    {
        UINT nPicWidth;   // 宽
        UINT nPicHeight;  // 高
        UINT nFramerate;  // 帧率
        UINT nGop;        // I帧间隔 取值范围: [0, 200]，以帧为单位
        UINT nBitrate;    // 码率
        UINT nVencType;   // 编码格式 E_VENC_TYPE

        UCHAR ucprofile;       // 0: baseline 1:main profile 2:high profile
        UCHAR ucRcMode;        // 0 变码流, 1 定码流
        UCHAR ucMaxFramerate;  // 最大帧率
        UCHAR bH265ProFlag;    // H265+ 标识，当nVencType为H265时有效
        UCHAR ucRes[80];

    } PACKED HCM_VENC_INFO_S;

    typedef struct _HCM_PIXEL_S
    {
        UINT nPicWidth;   // 宽
        UINT nPicHeight;  // 高
        UCHAR nSupport;   // 0不支持, 1 支持
        UCHAR ucRes[3];
    } PACKED HCM_PIXEL_S;

    typedef struct _HCM_SUPPORT_PIXEL_S
    {
        HCM_PIXEL_S szMainVideo[5];  // 主码流
        HCM_PIXEL_S szSubVideo[5];   // 辅码流
        HCM_PIXEL_S szThrVideo[5];   // 三码流
        HCM_PIXEL_S szSnapPic[5];    // 抓拍图
        UCHAR ucRes[64];
    } PACKED HCM_SUPPORT_PIXEL_S;

    // HCI_CFG_MOVE_GUANGBIAO

    // 72 size
    typedef struct _HCM_GUANGBIAO2_PARAM_S
    {
        INT ncolor;          // 0 白色; 1 红色; 2 绿色; 3 蓝色; 4 黑色; 5 灰色
        INT ngbPixe;         // 光标像素大小 1 100*100; 2 200*200; 3 300*300; ..... 8 800*800;
        UCHAR szpasswd[32];  // 默认 123456
        INT nMvStep;         // 移动步长 1~32 像素
        UCHAR byRes[32 - 4];
    } PACKED HCM_GUANGBIAO2_PARAM_S;

    typedef struct _HCM_AUDIO_INFO_S
    {
        UCHAR bEnable;  // 是否打开

        UCHAR bMicLine;  // 麦克或线输入

        UCHAR ucVolumeIn;  // 输入音量, 0~15

        UCHAR ucVolumeOut;  // 输出音量, 0~15

        HCI_SAMPLERATE_E eSampleRate;  // 采样率

        HCI_AENC_TYPE_E eAencType;  // 编码算法

        HCI_G726_BPS_E eBitrate;  // 码率

        UCHAR eAudioOutType;  // 0 hdmi 输出, 1 是喇叭输出	 针对带hdmi
        UCHAR bAecEnable;     // 回声抵消
        USHORT uTalkPort;     // 对讲端口
        UCHAR byRes[56];
    } PACKED HCM_AUDIO_INFO_S;

    typedef struct _HCM_UART_INFO_S
    {
        UINT baudrate;    // 波特率
        UCHAR datawidth;  // 数据位
        UCHAR parity;     // 校验位
        UCHAR stopbit;    // 停止位
        UCHAR RS485;      // 这个串口是否为485 0否 1是
    } HCM_UART_INFO_S;

    typedef enum
    {
        HCM_WIEGAND_NONE = 0,

        HCM_WIEGAND_26 = 0x26,
        HCM_WIEGAND_34 = 0x34,
        HCM_WIEGAND_36 = 0x36,
        HCM_WIEGAND_44 = 0x44,

        HCM_WIEGAND1_26 = 0x126,
        HCM_WIEGAND1_34 = 0x134,

        HCM_WIEGAND_ERROR = 0xff,  // ERROR
    } HCM_WIEGAND_TYPE_E;

    // =============== WG =============
    typedef struct HCM_Wiegand_Data26_s
    {
        unsigned char HID;  // Wiegand 26 HID 8bit
        unsigned short PID;
    } HCM_Wiegand_Data26;

    typedef struct HCM_Wiegand_Data34_s
    {
        unsigned short HID;  // Wiegand 34 HID 16bit
        unsigned short PID;
    } HCM_Wiegand_Data34;

    typedef struct HCM_Wiegand_Data_s
    {
        HCM_WIEGAND_TYPE_E Wiegand_Type;  // Wiegand Type 26 / 34 , if 0xff ,ERROR
        union
        {
            HCM_Wiegand_Data26 Wiegand26_Data;
            HCM_Wiegand_Data34 Wiegand34_Data;
        };
    } HCM_Wiegand_Data;

    typedef struct HCM_Frame_Info_s
    {
        UINT nFrameNo;     // 帧号
        ULONG nTimeStamp;  // 时间戳
        UCHAR nKeyFrame;   // 是否为关键帧 1表示为I帧，0表示其他帧
        ULONG nByteLen;    // 帧长度(含帧头12个字节)
        UCHAR res[32];     // 保留字
    } HCM_Frame_Info;

    // 功能:报警输入
    // 命令: HCI_CFG_ALARMIN
    typedef struct _HCM_ALARM_IN_S
    {
        UCHAR bEnable;                 // 开关
        UCHAR nAlmIOType;              // 0: 常开,1: 常闭
        HCI_CHECK_TIME_S stCheckTime;  // 时间段

        UCHAR byRes[256];
    } HCM_ALARM_IN_S;

    typedef struct _HCM_GNSS_TIME_S
    {
        int year; /**< Years since 1900 */
        int mon;  /**< Months since January - [0,11] */
        int day;  /**< Day of the month - [1,31] */
        int hour; /**< Hours since midnight - [0,23] */
        int min;  /**< Minutes after the hour - [0,59] */
        int sec;  /**< Seconds after the minute - [0,59] */
        int hsec; /**< Hundredth part of second - [0,99] */

    } HCM_GNSS_TIME;

    typedef struct _HCM_GNSS_MSG_S
    {
        int Sig;            // GPS 定位质量  （0=无效；1=固定；2=差分，3=敏感）
        HCM_GNSS_TIME UTC;  // GNSS 卫星授时
        double Latitude;    // 纬度 Latitude in NDEG - +/-[degree][min].[sec/60]
        double Longitude;   // 经度 Longitude in NDEG - +/-[degree][min].[sec/60]
        double Altitude;    // 海拔
        double PDOP;        // 位置精度因子 /**< Position Dilution Of Precision */
        double HDOP;        // 水平精度因子 /**< Horizontal Dilution Of Precision */
        double VDOP;        // 垂直精度因子 /**< Vertical Dilution Of Precision */
        double Speed;       // 地面速率 Speed over the ground in kilometers/hour
        int star_num;       // 观测卫星数量
        int star_use;       // 使用卫星数量
        char snr[12];       // 信噪比
        char res[48];       // 保留
    } HCM_GNSS_MSG;

    typedef enum _HCM_4G_TYPE_E
    {
        HCM_4GMODULES_NONE = 0x00,  // 无4G模块
        HCM_4GMODULES_EC20 = 0x01,  // 移远EC20模块，带GPS
        HCM_4GMODULES_CU204 = 0x02,  // 联通CU204模块，带GPS，大部分东西和有方N58通用
        HCM_4GMODULES_N58 = 0x03,    // 有方N58
        HCM_4GMODULES_L502 = 0x04,  // 移柯L502

        HCM_4GMODULES_RESERVED,  // 保留类型
    } HCM_4G_TYPE_E;

    typedef struct _HCM_4G_INFO_S
    {
        INT dwDevStatus;              // 4G模块是否存在
        HCM_4G_TYPE_E dwModulesType;  // 模块类型
        INT dwNetStatus;              // 网络状态 0 断开 1 联通
        INT dwSimStatus;              // SIM卡状态 0 拔出 1 插入
        INT dwCSQ;                    // 信号强度 0-31信号正常 其他值未不正常
        INT dwTelecomCode;            // 运营商代码 (用于识别运营商)
        /*
        高16位:
                0：No service
                2：2G(包括 GSM,EDGE,CDMA)
                3：3G(包括 WCDMA,TD-SCDMA,EVDO)
                4：4G(包括 FDD-LTE,TDD-LTE)
        低16位:
                00：注册失败
                01：中国移动
                02：中国联通
                03：中国电信
                04：未知
        */
        INT dw4GIP;           // IP地址
        INT dwOnlineTime;     // 在线时间秒数
        INT dwSimRegister;    // SIM卡网络注册状态 0 未注册 1 注册
        INT dwNetTestStatus;  // 网络测试结果 0网络不可用 1网络可用
        INT dw4GDNS;          // DNS
        CHAR byIMEI[16];      // IMEI号
        CHAR byICCID[21];     // ICCID SIM 卡标识
        CHAR byRes[11];
    } PACKED HCM_4G_INFO_S;

    typedef struct _HCM_4G_S
    {
        UCHAR bEnable;                // 使能4G
        HCM_4G_TYPE_E dwModulesType;  // 模块类型
        UINT dwGuardIP;               // 守护IP
        INT dwAPN_Auto;               // 自动选择APN
        CHAR dwAPN[32];               // APN
        CHAR dwAPN_User[32];          // APN用户名
        CHAR dwAPN_Passwd[32];        // APN密码
        CHAR dwDNS_Type;              // 0 使用系统DNS 1 使用4G DNS
        CHAR dwGuardDomain[32];       // 心跳域名
        UCHAR bGpsEnable;             // gps enable
        UCHAR byRes[95];
    } PACKED HCM_4G_S;

    typedef struct _HCM_WIFI_S
    {
        UCHAR bEnable;  // 使能WIFI
        UINT dwIPAddr;
        UINT dwGateway;
        UINT dwSubmask;
        UCHAR byWifiType;  // WIFI模块类型，参考 HIFACE_WIFITPYE
        UCHAR bDhcp;       // wifi dhcp 0 关 1开
        UCHAR byWifiMode;  // 当前wifi 模式  0  sta  1 ap
        UCHAR bySSID[32];
        UCHAR byPasswd[32];
        UCHAR byEncryptType;
        UCHAR byConnectStatus;  // WIFI模块是否已连接AP
        UCHAR byMacAddr[6];     // MAC地址
        UINT dwDNS1;
        UINT dwDNS2;
        UCHAR byExistStatus;  // WIFI模块是否存在
        UINT dwOnlineTime;    // WIFI在线时间
        UCHAR byRes[123];
    } PACKED HCM_WIFI_S;

    typedef struct _HCM_WIFISCANINFO_S
    {
        CHAR byBSSID[6];         // BSSID
        INT dwFrequency;         // 频道
        INT dwSignal;            // 信号
        CHAR byEncryptType[32];  // 加密类型
        CHAR bySSID[32];         // SSID
    } PACKED HCM_WIFISCANINFO_S;

    typedef struct _HCM_WIFILIST_S
    {
        HCM_WIFISCANINFO_S stList[64];
        CHAR byWifiNum;
    } PACKED HCM_WIFILIST_S;

    typedef enum _HCM_WIFILINKSTATUS_S
    {
        HCM_WIFI_UNK,           // 未知状态
        HCM_WIFI_INACTIVE,      // wifi未启用
        HCM_WIFI_COMPLETED,     // wifi连接完成
        HCM_WIFI_DISABLED,      // wifi被禁用
        HCM_WIFI_SCANNING,      // wifi扫描
        HCM_WIFI_DISCONNECTED,  // wifi未连接
    } HCM_WIFILINKSTATUS_S;

    typedef struct _HCM_WIFISTATUS_S
    {
        HCM_WIFILINKSTATUS_S enWpa_State;  // = INACTIVE
        CHAR byAddress[6];                 // MAC地址
        CHAR byBSSID[6];                   // BSSID
        INT dwFreq;                        // 信道
        CHAR bySSID[128];                  // SSID
        CHAR byGroup_Cipher[16];
        CHAR byPairwise_Cipher[16];
        CHAR byKey_Mgmt[16];
    } PACKED HCM_WIFISTATUS_S;

    // 144 韦根
    typedef struct _HCM_WG_S
    {
        UCHAR bWGEnable;      // 韦根使能
        UCHAR bWGEndianMode;  // 韦根大小端
        UCHAR bWGProtocol;    // 韦根26 34
        UCHAR bWGInModes;     // 韦根输入模式 0 同步抓取人脸,   1 直接通行
        UINT nPublicNum;      // 公共卡号
        UINT nMinNum;         // 卡号范围
        UINT nMaxNum;
        UCHAR byRes[128];
    } PACKED HCM_WG_S;

    // HCI_CFG_EPTZ
    typedef struct _HCM_EPTZPARAM_S
    {
        UCHAR bEptzEnable;  // 使能
        UCHAR byRes[63];
    } PACKED HCM_EPTZPARAM_S;

    // FACE_GROUP_TIME_S  len 128 HCI_CFG_GROUPTIME
    typedef struct _HCM_GROUP_TIME_S
    {
        UCHAR nEnable;
        UCHAR nres[3];
        CHAR szGroupName[32];  // 组的名称
        CHAR szTime[80];       // 时间
        UCHAR byRes[12];

    } PACKED HCM_GROUP_TIME_S;

    typedef struct _HCM_IDCARD_S
    {
        UCHAR bEnable;  // 使能 1 身份证  , 2 证件下发
        UCHAR bMode;  // 身份证验证模式, 0  白名单 或 身份证  ， 1 身份证+人脸验证 2
                      // 身份证+人脸+识别
        SHORT sCmpVal;  // 身份证识别阈值

        UCHAR byRes[64];
    } PACKED HCM_IDCARD_S;

    //=====================net  网络参数===============================
    // HCI_CFG_FTP
    typedef struct _HCM_FTP_S
    {
        CHAR szAddr[MAX_STRING_64_LEN];      // IP地址 域名
        UINT uiPort;                         // 端口
        CHAR szUserName[MAX_STRING_32_LEN];  // 用户名
        CHAR szPassword[MAX_STRING_32_LEN];  // 密码
        CHAR szFtpPath1[128];
        CHAR xzqCode[24];
        CHAR szway[32];     // 街道
        CHAR szxiaoqu[32];  // 小区
        CHAR bSnEnable;     // 设备sn 同步
        CHAR bftpFileType;  // ftp 上传文件格式
        CHAR nres1[2];
        CHAR nres2[420];
        // CHAR    byRes[512];
    } PACKED HCM_FTP_S;

    // 功能:RTSP
    // 命令: NCP_NETSER_RTSP
    typedef struct _HCM_RTSP_S
    {
        INT bEnable;     // RTSP服务开关
        INT bAuth;       // 是否认证
        INT bPassive;    // 0: 主动连服务器  1: 被动等待客户端连接
        UINT dwCPort;    // RTSP服务端口
        UINT dwMTU;      // RTSP MTU		maxPacketSize
        UINT dwSIPAddr;  // 主动连接服务器时用的RTSP服务器地址
        UINT dwSPort;    // 端口

        INT bMmsEnable;
        UINT dwMmsPort;

        // RTSP 多播配置
        UINT dwMultiMode;    // 0: 单播  1: 多播
        UINT dwMultiIPAddr;  // 多播地址
        USHORT wVideoPort1;  // primary video port
        USHORT wVideoPort2;  // secondary video port
        USHORT wAudioPort1;  // primary audio port
        USHORT wAudioPort2;  // secondary audio port

        UCHAR byOnvifAuth;           // onvif 密码验证
        UCHAR byRTPMultiMainEnable;  // 主码流多播开关
        UCHAR byRTPMultiMinEnable;   // 子码流多播开关
        UCHAR byRTPMultiTTL;         // TTL
        UINT dwRTPMultiMainIPAddr;   // 主码流多播地址
        UINT dwRTPMultiMinIPAddr;    // 子码流多播地址
        USHORT wRTPMultiMainPort;    // 主码流多播端口
        USHORT wRTPMultiMinPort;     // 子码流多播端口
        UCHAR byAudioMainEnable;     // 主码流音频开关
        UCHAR byAudioSubEnable;      // 次码流音频开关
        UCHAR byAudioThrEnable;      // 三码流音频开关
        UCHAR res;                   //
        UCHAR byRes[60];
    } HCM_RTSP_S;

    // 功能: UPNP服务器
    // 命令: HCI_CFG_UPNP
    // 说明:
    typedef struct _HCM_UPNP_S
    {
        // 属性
        INT bEnable;

        UINT dwUpnpMode;  // UPNP模式 0: 手动 1: 自动

        UINT dwUpnpEthNo;  // UPNP网卡 0－有线 1－无线
        UINT dwUpnpHost;   // UPNP主机

        USHORT wSetMapDataPort;  // 希望数据映射端口
        USHORT wSetMapHttpPort;  // 希望WEB映射端口

        USHORT wNowMapDataPort;  // 实际数据映射端口
        USHORT wNowMapHttpPort;  // 实际WEB映射端口

        USHORT wSetMapRtspPort;  // 希望RTSP映射端口
        USHORT wNowMapRtspPort;  // 实际RTSP映射端口

        USHORT wNowServerRtcpPort;
        USHORT wNowServerRtpPort;

        USHORT wSetServerRtcpPort[5];
        USHORT wSetServerRtpPort[5];

        UCHAR byRes[64];

    } PACKED HCM_UPNP_S;

    // 功能: 邮件服务器
    // 命令: HCI_CFG_SMTP
    typedef struct _HCM_MAIL_S
    {
        CHAR szSMTPAddr[MAX_STRING_64_LEN];  // IP地址 域名
        UINT dwSMTPPort;                     // 端口
        CHAR szSMTPUserName[MAX_STRING_32_LEN];
        CHAR szSMTPPassword[MAX_STRING_32_LEN];

        CHAR szPOP3Addr[MAX_STRING_64_LEN];  // IP地址 域名
        UINT dwPOP3Port;                     // 端口
        CHAR szPOP3UserName[MAX_STRING_32_LEN];
        CHAR szPOP3Password[MAX_STRING_32_LEN];

        INT bSSLAuth;

        CHAR szMailTitle[MAX_STRING_32_LEN];    // 标题
        CHAR szMailContent[MAX_STRING_32_LEN];  // 邮件内容
        CHAR szFromName[MAX_STRING_32_LEN];     // 发件人
        CHAR szFromAddr[MAX_STRING_32_LEN];     // 发送地址

        CHAR szToName1[MAX_STRING_32_LEN];  // 接收人
        CHAR szToAddr1[MAX_STRING_32_LEN];  // 接收地址

        CHAR szToName2[MAX_STRING_32_LEN];  // 抄送人
        CHAR szToAddr2[MAX_STRING_32_LEN];  // 抄送地址

        UINT dwTimerMailOpen;  // 定时发送(/分)
        UINT dwTimeVideoMail;  // 视频定时抓拍发送MAIL开关

        UINT nEventType;

        UCHAR byRes[64 - 4];
    } PACKED HCM_MAIL_S;

    typedef struct _HCM_GB_S
    {
        CHAR serverID[MAX_STRING_32_LEN];              // 服务器ID
        CHAR serverAddr[MAX_STRING_64_LEN];            // 服务器IP
        UINT serverPort;                               // 服务器端口
        CHAR deviceID[MAX_STRING_32_LEN];              // 设备ID
        UINT devicePort;                               // 设备端口
        CHAR userName[MAX_STRING_32_LEN];              // 用户名
        CHAR password[MAX_STRING_64_LEN];              // 密码
        CHAR chanid[MAX_STRING_32_LEN];                // 媒体通道ID
        CHAR alarmid[MAX_STRING_32_LEN];               // 报警ID
        CHAR administrativeregion[MAX_STRING_32_LEN];  // 行政区域
        CHAR deviceAssignment[MAX_STRING_32_LEN];      // 设备归属
        CHAR policeregion[MAX_STRING_32_LEN];          // 警区
        CHAR manufacturer[MAX_STRING_32_LEN];          // 制造商
        CHAR secrecyAttr[MAX_STRING_32_LEN];           // 保密属性
        CHAR secrecyAttr1[MAX_STRING_32_LEN];
        INT longitude;
        INT latitude;
        INT activeTime;        // 心跳时间
        INT activeCount;       // 心跳次数
        INT registEffectTime;  // 注册有效时间
        CHAR deviceName[MAX_STRING_32_LEN];

        CHAR nRegType;  // 0 - 自动注册， 1 - 手动注册 add by matthew 220322
        CHAR szRes[31];
    } PACKED HCM_GB_S;

    //=========================================================================

    // 串口协议
    typedef struct _HCI_SERIAL_PROTOCOL_S
    {
        UINT baudrate : 20;    // 波特率(bps) 300 ~ 115200
        UINT dataBits : 4;     // 数据有几位  5: 5位 6: 6位 7: 7位 8: 8位
        UINT stopBits : 2;     // 停止位:     1: 1位 2: 2位
        UINT parity : 3;       // 校验        0: 无  1: 奇  2:偶   3: 恒1  4:恒0
        UINT flowControl : 2;  // 流控        0: 无  1: 软流控     2:硬流控
    } PACKED HCI_SERIAL_PROTOCOL_S;

    // HCI_CFG_SERIAL
    typedef struct _HCM_SERIAL_S
    {
        HCI_SERIAL_PROTOCOL_S stSerial[HCI_MAX_COM_NUM];
        INT nsupportComCount;
        CHAR bPTZ_Lock;
        CHAR bRs485Mode;  // 0单工发送 (Simplex Transmission) 1单工接收 (Simplex
                          // Reception) 2半双工 (Half-Duplex)
        CHAR byRes[510];
    } PACKED HCM_SERIAL_S;

    // HCI_CFG_VIMASK 视频屏蔽区域
    typedef struct _HCM_VI_MASK_S
    {
        INT bEnable;

        HCI_AREA_RECT_S stMaskArea[HCI_MAX_MASK_NUM];  // 目前只支持4个

        CHAR byRes[64];
    } PACKED HCM_VI_MASK_S;
#if 1
    //===================================
    //		视频参数
    //=====================================
    typedef enum _HCM_VI_SENSOR_E
    {
        // 色彩
        SEN_BRIGHTNESS = 0X00000001,  // 亮度
        SEN_HUE = 0X00000002,         // 色度
        SEN_CONTRAST = 0X00000004,    // 对比度
        SEN_SATURATION = 0X00000008,  // 饱和度
        SEN_SHARPNESS = 0X00000010,   // 锐度

        // 增益
        SEN_AUTODAGC = 0X00000020,    // 自动数字增益 开关
        SEN_MANUALAGC = 0X00000040,   // 手动模拟增益
        SEN_MANUALDAGC = 0X00000080,  // 手动数字增益 值

        SEN_GAMMA = 0X00000100,  // Gamma

        // 白平衡
        SEN_AUTOAWB = 0X00000200,   // 自动白平衡
        SEN_AWBRED = 0X00000400,    // 白平衡 红
        SEN_AWBGREEN = 0X00000800,  // 白平衡 绿
        SEN_AWBBLUE = 0X00001000,   // 白平衡 蓝
                                   // 增益
        SEN_AUTOAGC = 0X00002000,      // 自动模拟增益 开关
        SEN_AGCLEVEL = 0X00004000,     // 增益值
        SEN_AUTODAGCVAL = 0X02000000,  // 最大模拟增益值
                                       // 背光补偿
        SEN_AUTOBLC = 0X00008000,      // 自动补偿
        SEN_BLCLEVEL = 0X00010000,     // 背光补偿
                                    // 曝光
        SEN_AUTOEXPOSURE = 0X00020000,    // 自动曝光   \手动曝光 开关
        SEN_EXPOSURETIME = 0X00040000,    // 手动曝光时间
        SEN_AESTRATEGYMODE = 0X00080000,  // 曝光策略
        SEN_SCENEMODE = 0X00100000,       // 场景室内室外
        SEN_SHUTTERSPEED = 0X00200000,    // 快门速度
        SEN_FRAME_TURBO = 0X00400000,     // 高帧率模式
        SEN_GAINMODE = 0X00800000,        // 增益模式
        SEN_AUTOAWBMODE = 0X01000000,     // 1080p Hispeed自动白平衡模式
        SEN_MAXAGC = 0X02000000,          // 最大增益值
        SEN_EXPTIMEMAX = 0X04000000,      // 曝光快门最大值

        SEN_ANTIFOG = 0x08000000,  // 去雾
                                   //	SEN_ANTIFLASECOLOR  =    0x10000000, //去伪彩
                                   //	SEN_ANTIDIS			=   0x20000000,  //消抖
        SEN_FRAME_TURBO_PRO = 0x10000000,  // 超高帧率模式 60+FPS
        SEN_AIISP = 0x20000000,            // AI ISP
        SEN_ROTATE = 0x40000000,           // 旋转
        SEN_GAMAMODE = 0x80000000,         // gama模式选择

        SEN_SENSOR_ALL = 0xFFFFFFFF,  // 设置所有参数
    } HCM_VI_SENSOR_E;

    // 亮色调节 HCI_CFG_ISP_SENSOR
    typedef struct _HCM_VI_SENSOR_S
    {
        HCM_VI_SENSOR_E eValidSupport;  // 有效支持的参数，该参数设置时候无效
                                        // 在获取的时候有效，用以判断设备是否支持该参数

        // 色彩
        UCHAR byBrightness;         // 亮度 			0 ~ 255
        UCHAR byBrightnessDefault;  // 亮度缺省值

        UCHAR byHue;         // 色度			0 ~ 255
        UCHAR byHueDefault;  // 色度缺省值;

        UCHAR byContrast;         // 对比度		0 ~ 255
        UCHAR byContrastDefault;  // 对比度缺省值

        UCHAR bySaturation;         // 饱和度		0 ~ 255
        UCHAR bySaturationDefault;  // 饱和度缺省值

        UCHAR bySharpness;         // 锐度			0 ~ 255
        UCHAR bySharpnessDefault;  // 锐度缺省值

        UCHAR byRed;         // 红色			0 ~ 255
        UCHAR byRedDefault;  // 红色缺省值

        UCHAR byGreen;         // 绿色 			0 ~ 255
        UCHAR byGreenDefault;  // 绿色缺省值

        UCHAR byBlue;         // 蓝色 			0 ~ 255
        UCHAR byBlueDefault;  // 蓝色缺省值

        UCHAR byGamma;         // gamma			0 ~ 255
        UCHAR byGammaDefault;  // gamma缺省值

        // 白平衡
        UCHAR byAutoAwb;  // 自动白平衡 	0自动, 1 手动

        UCHAR byAwbRed;         // 白平衡 红 	0 ~ 255
        UCHAR byAwbRedDefault;  // 白平衡 红缺省值

        UCHAR byAwbGreen;         // 白平衡 绿 	0 ~ 255
        UCHAR byAwbGreenDefault;  // 白平衡 绿缺省值

        UCHAR byAwBblue;         // 白平衡 蓝 	0 ~ 255
        UCHAR byAwBblueDefault;  // 白平衡 蓝缺省值

        // 增益
        UCHAR byAutoMaxAGainEx;       //// 0自动, 1 手动   AGAIN
        UCHAR byAutoMaxAGainExLevel;  // 最大自动增益值
        UCHAR byManualAGain;          // 手动模拟增益

        UCHAR byAutoMaxDGainEx;       //// 0自动, 1 手动   DGAIN
        UCHAR byAutoMaxDGainExLevel;  //// 最大自动增益值 DGAIN
        UCHAR byManualDGain;          // 手动数字增益

        // 背光补偿
        UCHAR byBlcLevel;         // 补偿值;		0 ~ 255
        UCHAR byBlcLevelDefault;  // 补偿值缺省值;

        // 曝光
        UCHAR byAutoExposureEx;  /// 0 自动  1 手动
        UINT wExpTimeMax;  // 自动曝光快门最大值 12 25 50 100 150 200 250 400 800 1000
                           // 2000 4000 8000 100000
        UINT wExptimeDef;  /**/

        UCHAR byAntiFog;  // 去雾 (0~255)

        UCHAR byAntiFalseColor;  // 去伪彩 (0~255)

        UCHAR byAntiDIS;  // 去抖 开关

        UCHAR byRotate;  // 旋转 0(不旋转) 1(90度) 2(270) 面板机 不开放

        UCHAR bySceneMode;   // 场景
        UCHAR byFrameTurbo;  // 高帧率模式 0关 1开

        UCHAR byAEStrategyMode;     // 0高光优先，1低光优先
        UINT wExpoSuretime;         // 手动曝光时间
        UCHAR byAwbAutoMode;        // 白平衡场景0-4
        UCHAR byAwbStyleRed;        // 白平衡风格 红 0-255
        UCHAR byAwbStyleGreen;      // 白平衡风格 红 0-255
        UCHAR byAwbStyleBlue;       // 白平衡风格 红 0-255
        UCHAR byAutoGainMode;       // 增益模式 0自动 1手动
        UCHAR byAutoDGainMax;       // 最大数字增益 0-255
        UCHAR byMaxAgc;             // 最大数字增益 0-255
        UCHAR byMaxSysGain;         // 最大总增益 0-255
        UCHAR byManualAGainEnable;  // 手动模拟增益 0关闭 1开启
        UCHAR byManualDGainEnable;  // 手动模拟增益 0关闭 1开启
        UCHAR byAIIsp;              // AI ISP
        UCHAR byRes[238];
    } PACKED HCM_VI_SENSOR_S;

    typedef enum _HCM_VI_SCENE_E
    {
        // 光圈
        SCE_AUTOIRIS = 0X00000001,   // 自动光圈
        SCE_IRISLEVEL = 0X00000002,  // 光圈电平

        SCE_ANTIFLICKER = 0X00000020,  // 抗闪烁
        SCE_SLOWFRAME = 0X00000040,    // 降帧处理
        SCE_2DNR = 0X00000080,         // 2D降噪

        // 彩转黑
        SCE_CTB = 0X00000100,  // 彩转黑

        SCE_MIRROR = 0X00000400,    // 镜向
        SCE_FLIP = 0X00000800,      // 翻转
        SCE_PWDFREQ1 = 0X00002000,  // 照明频率1SCE_FLICKERCTRL1

        // 红外
        SCE_IREXIST = 0X00008000,  // 是否有红外

        SCE_IRCFMODE = 0X00010000,        // IRCF模式
        SCE_IRLIGHTTYPE = 0X00020000,     // 红外灯类型
                                          //
        SCE_WDR = 0X00040000,             // sensor宽动态 合帧宽动态
        SCE_DRC = 0X00080000,             // 数字宽动态
        SCE_LOWILLUM = 0X00100000,        // 低照度
        SCE_CTBLEVEL = 0X00800000,        // 彩转黑阀值，当彩转黑为自动时有效
        SCE_HLC = 0X01000000,             // 强光抑制
        SCE_IRLEVEL = 0X02000000,         // 夜间启动点
        SCE_LENSCORRECTION = 0X04000000,  // 镜头校正
        SCE_SMARTNR = 0x08000000,         // 智能降噪 0 ~ 255  0为关
        SCE_3DNR = 0X10000000,            // 3D降噪
        SCE_3DNRLEVEL = 0x20000000,       // 3D降噪值
        SCE_ONCE_AWB = 0x40000000,  // 一次白平衡，先自动白平衡然后切换为手动
        SCE_INFRAREDETECT = 0x80000000,  // 红外检测模式
        SCE_SCENE_ALL = 0xFFFFFFFF,      // 设置所有参数
    } HCM_VI_SCENE_E;

    // HCI_CFG_ISP_VISCENE
    typedef struct _HCM_VI_SCENE_S
    {
        HCM_VI_SCENE_E eValidSupport;  // 有效支持的参数，该参数设置时候无效
                                       // 在获取的时候有效，用以判断设备是否支持该参数

        // 光圈
        UCHAR byAutoIris;  // 自动光圈		0自动, 1 手动

        UCHAR byIrisLevel;  // 光圈电平 		0 ~ 255

        // 彩转黑
        UCHAR byCtb;  // 彩转黑 		0关(彩色),   1 开(自动)，2 黑白

        UCHAR byMirror;  // 镜向			0关,   1 开
        UCHAR byFlip;    // 翻转 			0关,   1 开

        UCHAR byPwdFreq1;  // 照明频率1 	0 60HZ,	1 50HZ

        // 红外
        UCHAR byIRExist;   // 是否有红外	0关   1 开
        UCHAR byIRCFMode;  // IR模式;		0 电平 1PWM

        UCHAR byWDR;       // 宽动态		0无,   1 有
        UCHAR byWDRLevel;  // 宽动态		0 ~ 255

        UCHAR byIRNigToDayLevel;  // nig to day 灵敏度值
        UCHAR byLensCorrection;   // 镜头校正		0: 关   1: 开

        UCHAR bySmartNR;         // 智能降噪		0 ~ 255 0: 关
        UCHAR bySmartNRDefault;  // 智能降噪默认值

        UCHAR by3DNR;       // 3D 降噪		0: 关	1: 开
        UCHAR by3DNRLevel;  // 3D降噪值

        UCHAR byInfraredDetectMode;  // 0-- 视频检测   1-- 时间控制        2 --光敏检测

        UCHAR byTRCutLevel;  // IRCUT切换             0 --低电平有效 1 --高电平有效
                             // 为夜晚模式
        UCHAR byphotoresistorLevel;  // 光敏电阻            0 --低电平有效 1
                                     //--高电平有效 		为黑夜 2 自动
        UCHAR
        byInfraredLamp;  // 红外灯切换      0 --低电平有效 1-- 高电平有效 打开红外灯
        HCI_DATE_S uDayDetecttime;    // 转白天检测时间
        HCI_DATE_S uNigntDetecttime;  // 转夜晚检测时间
        UCHAR byirtime;               // 光敏电阻模式  黑转彩切换时间0到60秒

        UCHAR byirCtoBtime;       // 光敏电阻模式彩转黑切换时间0到60秒
        UCHAR bylowFarmeRate;     // 降帧处理
        UCHAR byLedControl;       // 0  自动   1 开   2 关 红外灯
        UCHAR byHCL;              // 强光抑制
        UCHAR byIRDayTONigLevel;  // 彩转黑 灵敏度值
        UCHAR byWLedOpenLevel;    // 白光灯打开的阀值，自动彩色时有效
        UCHAR byWLedCloseLevel;   // 白光灯关闭的阀值，自动彩色时有效

        UCHAR byLightingIntensity;  // wLED 白光灯 亮度 0-50

        UCHAR byWLedControl;       // 0  自动   1 开   2 关 白光灯控制
        UCHAR byIrledIntensity;    // irled 红外灯 亮度 0-50
        UCHAR byNight2DayLevel;    // ADC光敏黑转彩切换阈值
        UCHAR byDay2NightLevel;    // ADC光敏彩转黑切换阈值
        UCHAR byInfraredLampType;  // 红外灯类型;	0 红外 1 白光

        UCHAR bySensorWDR;       // 合帧宽动态	:	 0无,   1 有
        UCHAR bySensorWDRLevel;  // 合帧宽动态强度 :0 ~ 255
        UCHAR by2DNRLevel;       // 2D降噪值
        UCHAR byAntiFlicker;     // 抗闪	0关闭 1 自动 2 50HZ 3 60HZ

        UCHAR byLDC_XOffset;  // 镜头校正 X轴偏移
        UCHAR byLDC_YOffset;  // 镜头校正 Y轴偏移
        SHORT byLDC_Ratio;    // 镜头校正 矫正强度
        UCHAR byOnceAWB;      // 一次白平衡

        UCHAR byRes[239];

    } PACKED HCM_VI_SCENE_S;

    // OSD标题
    typedef struct _HCM_OSD_TITLE_S
    {
        INT bShow;

        UINT dwType;  // 1-通道名称
                      // 2-用户自定义
                      // 3-报警信息
                      // 4-卡号叠加，用于ATM等插卡设备卡号
                      // 5-文件

        USHORT wPosX;
        USHORT wPosY;

        CHAR szText[MAX_STRING_64_LEN];
        CHAR osdsize;  // OSD字体大小，0大 1中 2小 3根据分辨率自适应
        UCHAR byRes0[3];
        UINT dwOsdColor;  // 字体颜色
        UCHAR byRes1[8];
    } HCM_OSD_TITLE_S;

    // OSD时间
    typedef struct _HCM_OSD_TIME_S
    {
        INT bShowDate;  // 日期
        INT bShowTime;  // 时间
        INT bShowWeek;  // 星期

        USHORT wPosX;
        USHORT wPosY;

        UCHAR byDateType;  // 0: XXXX-XX-XX 年月日
                           // 1: XX-XX-XXXX 月日年
                           // 2: XXXX年XX月XX日
                           // 3: XX月XX日XXXX年
        UCHAR byHourType;  // OSD小时制: 0-24小时制,1-12小时制
        UCHAR byResT[2];

        UCHAR byRes[4];
    } HCM_OSD_TIME_S;

    // OSD时间
    typedef struct _HCM_OSD_BITRATE_S
    {
        INT bShow;

        USHORT wPosX;
        USHORT wPosY;

        UCHAR byRes[8];
    } HCM_OSD_BITRATE_S;

    typedef struct _HCM_OSD_BMPLOGO_S
    {
        USHORT nBmpx;
        USHORT nBmpy;
        UCHAR nUpdatePicFlag;  // 有新的bmp图片过来需要设置为1
        UCHAR nBmpEnable;
        UCHAR byRes[2];
    } PACKED HCM_OSD_BMPLOGO_S;

    // OSD设置
    // 命令: HCI_CFG_OSD
    typedef struct _HCM_OSD_S
    {
        UINT dwOsdAttr;  // OSD属性:透明，闪烁
                         // 1: 透明,闪烁
                         // 2: 透明,不闪烁
                         // 3: 闪烁,不透明
                         // 4: 不透明,不闪烁

        UINT dwOsdColor;  // 字体颜色

        HCM_OSD_TIME_S stTimeOSD;
        HCM_OSD_BITRATE_S stBitrateOSD;
        HCM_OSD_TITLE_S stTitleOSD[4];
        HCM_OSD_BMPLOGO_S stBmpLogoOSD;          // 主码流叠图
        HCM_OSD_BMPLOGO_S stBmpLogoOSDOtherChn;  // 其它码流
        UINT bZoomOSD;                           // 变倍OSD显示
        UCHAR bCrosshair;                        // 显示十字线
        UCHAR byRes[491];
    } PACKED HCM_OSD_S;

    //======================end =====================

    //========================报警功能===========================
    typedef struct _HCM_SEG_TIME_S
    {
        UCHAR bEnable;         // 是否检测
        UCHAR byTask;          // 任务
        UCHAR byRes[2];        // 备用
        HCI_TIME_S stBgnTime;  // 开始时间
        HCI_TIME_S stEndTime;  // 结束时间
    } PACKED HCM_SEG_TIME_S;

    typedef struct _HCM_CHN_MASK_S
    {
        UINT dwChns1;  // bit.0 ~ bit.31  表示通道 1  ~ 32
        UINT dwChns2;  // bit.0 ~ bit.31  表示通道 33 ~ 64
    } PACKED HCM_CHN_MASK_S;

    // 报警联动处理
    typedef struct _HCM_ALARM_HANDLE_S
    {
        HCM_CHN_MASK_S
        stMaskAlarmOut;  // 报警触发设备的输出通道,报警触发的输出,为1表示触发该输出
        UINT dwAlarmOutTime;  // 报警输出的时间(秒)

        HCM_CHN_MASK_S stMaskAlarmRec;  // 联动录像通道
        UINT dwRecSaveMode;  // bit0: 本地存储(当本地有存储设备时, 此位固定为1)
                             // bit2: ftp上传
        UINT dwRecTime;      // 录像的时间(秒)

        HCM_CHN_MASK_S stMaskAlarmSnap;  // 联动抓拍
        UINT dwSnapSaveMode;  // bit0: 本地存储(当本地有存储设备时, 此位固定为1)
                              // bit1: email
                              // bit2: ftp上传

        UINT dwSnapNum;       // 连续抓拍张数
        UINT dwSnapInterval;  // 连续抓拍时间间隔(毫秒)  0: 连续抓拍

        UINT dwUserData1;  // 用户数据1(联动PC录像通道)
        UINT dwUserData2;  // 用户数据2

        UINT dwSnapDealy;  // 延迟抓拍

        UCHAR bSendEmail;  // 联动发送email
        UCHAR byResT[3];
        UCHAR byRes[248];  // 备用
    } PACKED HCM_ALARM_HANDLE_S;

    // HCI_CFG_ALM_TEMP
    typedef struct _HCM_ALM_TEMP_IR_S
    {
        UINT dwAlarmOutType;
        INT bEnable;
        FLOAT fAlmTemp;
        HCM_ALARM_HANDLE_S stAlarmHandle;
        UCHAR byRes[256];
    } PACKED HCM_ALM_TEMP_IR_S;

    // 功能: 视频移动
    // 命令: HCI_CFG_VIMOTION
    typedef struct _HCM_ALM_VIMOTION_S
    {
        UCHAR bEnable;

        UINT dwSensitivity;  // 灵敏度: 1 ~ 100 值越大越灵敏

        HCM_SEG_TIME_S stSchTime;  // 布防时间

        HCI_AREA_RECT_S stDectectArea[9];  // 检测区域

        // 报警处理
        HCM_ALARM_HANDLE_S stAlarmHandle;

        UINT dwAlarmOutType;  // 0  输出常开， 1 常闭
        UCHAR dwAlarmAudio;   // 报警声音开关
        UCHAR byRes[27];
    } PACKED HCM_ALM_VIMOTION_S;
#if 1
    // 功能: 智能检测 人脸人形报警检测
    // 命令: HCI_CFG_FACERX_ALM
    typedef struct _HCM_ALM_FACERX_S
    {
        UCHAR bEnable;            // 是否开启
        UCHAR bAudioAlarmEnable;  // 是否语音播报
        UCHAR byRes1[2];

        HCM_SEG_TIME_S stSchTime;  // 布防时段
        UINT dwAlmFaceRxType;      // 报警类型  0: 人脸,1: 人形
        // 报警处理
        HCM_ALARM_HANDLE_S stAlarmHandle;
        UINT dwAlarmOutType;  // 0  输出常开， 1 常闭

        HCI_AREA_RECT_S stDectectArea;  // 检测区域

        // modify by
        UCHAR byRes[128];
    } PACKED HCM_ALM_FACERX_S;
#endif

#define MAX_FACERX_NUM 32
    typedef struct _HCI_FACERX_TRACK_S
    {
        INT left;
        INT top;
        INT right;
        INT bottom;

        INT label;  //  1 人脸   ; 2  行人
        UINT nid;
        float confidence;
        CHAR res[64];
    } PACKED HCI_FACERX_TRACK;

    typedef struct _HCI_FACERX_INFO_S
    {
        HCI_FACERX_TRACK stFaceTrack[MAX_FACERX_NUM];
        INT nTrackWidth;
        INT nTrackHeight;
        INT nTrackNum;
    } PACKED HCI_FACERX_INFO_S;
    // 功能:  视频丢失报警
    // 命令: HCI_CFG_VILOSE
    // 说明:
    typedef struct _HCM_ALM_VILOST_S
    {
        UCHAR bEnable;
        // 报警处理
        HCM_ALARM_HANDLE_S stAlarmHandle;
        UINT dwAlarmOutType;  // 0  输出常开， 1 常闭
        UCHAR byRes[32 - 4];
    } PACKED HCM_ALM_VILOST_S;

    // 功能:IO报警输入
    // 命令: HCI_CFG_IOIN
    typedef struct _HCM_ALM_IOIN_S
    {
        CHAR szName[MAX_STRING_64_LEN];
        UCHAR bEnable;             // 是否开启
        HCM_SEG_TIME_S stSchTime;  // 布防时段
        UINT dwAlmIOType;          // 报警器类型  0: 常开,1: 常闭
        // 报警处理
        HCM_ALARM_HANDLE_S stAlarmHandle;
        UINT dwAlarmOutType;  // 0  输出常开， 1 常闭
        // modify by
        UCHAR byRes[128 - 4];
    } PACKED HCM_ALM_IOIN_S;

    // 功能: 网络故障
    // 命令: HCI_CFG_NETLOSE
    // 说明:
    typedef struct _HCM_ALM_NETERROR_S
    {
        UCHAR bEnable;
        // 报警处理
        HCM_ALARM_HANDLE_S stAlarmHandle;
        UINT dwAlarmOutType;  // 0  输出常开， 1 常闭
        UCHAR byRes[32 - 4];
    } PACKED HCM_ALM_NETERROR_S;

    //==========================end============================

    // 功能: 云台控制
    // 说明: 操作(写)
    // 命令:   HCI_CFG_PTZCTL
    typedef struct _HCM_PTZ_CTRL_S
    {
        UCHAR byChannelNo;  // 视频通道号
        UCHAR byCommand;    // 云台控制命令
        UCHAR byData1;      // 垂直速度(预置、调用号）
        UCHAR byData2;      // 水平数度
        UCHAR byRes1;       // 串口号
        UCHAR byRes2;       // 云台协议序号
        UCHAR byRes3[2];
    } HCM_PTZ_CTRL_S;

#define HCM_MAX_PRESET_NUM 256  // 预置点个数

    typedef struct _HCM_PRESET_INFO_S
    {
        UCHAR presetNo;
        UCHAR presetStatus;  // 0 未设置  1 已设置
        UCHAR byRes[6];
        CHAR presetName[32];

    } PACKED HCM_PRESET_INFO_S;

    typedef struct _HCM_PRESET_REC_S
    {
        HCM_PRESET_INFO_S stPresetRec[HCM_MAX_PRESET_NUM];

    } PACKED HCM_PRESET_REC_S;

    //===================================================================

    // HCI_CONFIG_TYPE_E is	HCI_CFG_UIIP
    typedef struct _HCI_UIDISIP_S
    {
        UINT uiEthIPAddr;  // IP地址
        UINT uiSubmask;    // 子网掩码
        UINT uiGateway;    // 网关
        UINT uiDNS1;       // DNS 1
        UINT uiDNS2;       // DNS 2
        UCHAR ucRes[256];  //
    } PACKED HCI_UIDISIP_S;

    // 温度报警
    // 说明: 读写	   len	580
    typedef struct _HCI_ALM_TEMP_S
    {
        UINT dwAlarmOutType;  // 0  输出常开， 1 常闭

        INT bEnable;
        FLOAT fAlmTemp;  // 温度阈值
        // 报警处理
        HCM_ALARM_HANDLE_S stAlarmHandle;

        UCHAR byRes[256];
    } PACKED HCI_ALM_TEMP_S;

    // 定时录像
    typedef struct _HCI_SCHN_RECORD_S
    {
        UINT dwSize;
        INT bMinorStream;  // 次码流
        UINT dwSaveMode;   // bit0: 本地存储(当本地有存储设备时, 此位固定为1)
                           // bit2: ftp上传
        HCI_SCHWEEK_TIME_S stSchTime;  // 定时录像时间

        UCHAR byRes[64];
    } PACKED HCI_SCHN_RECORD_S;
    // 定时抓拍
    typedef struct _HCI_SCHN_SNAP_S
    {
        UINT dwSize;
        UINT dwSnapNum;       // 连续抓拍张数
        UINT dwSnapInterval;  // 连续抓拍时间间隔(毫秒)  0: 连续抓拍
        UINT dwSaveMode;      // bit0: 本地存储(当本地有存储设备时, 此位固定为1)
                              // bit2: ftp上传
        HCI_SCHWEEK_TIME_S stSchTime;  // 定时抓拍时间
        UCHAR byRes[60];
    } PACKED HCI_SCHN_SNAP_S;

    typedef struct HCI_STORAGE_RULE_S
    {
        UINT dwSize;
        UINT dwFileExtType;     // 0 自定义文件，1 ASF文件
        UINT dwRecordFullStop;  // 0 覆盖录像, ? 1 录满停
        UINT dwPreRecordTime;  // 条件录像时预录策略 : 0 不预录 ，0XFFFFFFFF尽可能预录
        USHORT wPackageTime;    // 打包时间
        USHORT bCheckDisk;      // 系统启动时进行磁盘扫描
        UINT dwStorageAllSize;  // 磁盘总容量
        UINT dwStorageRecSize;  // 录像磁盘容量
        UINT dwStoragePicSize;  // 图片磁盘容量
        UCHAR byRes[116];
    } HCI_STORAGE_RULE_S;

    // 功能: 智能分析支持的算法
    // 说明:
    // 命令:   HCI_CFG_LOSTOBJ
    typedef enum _HCM_IVS_FUNCTION_E
    {
        HCM_IVS_MD = 0x1,             // 移动检测
        HCM_IVS_FIRE = 0x2,           // 火焰检测
        HCM_IVS_PEOPLEDETE = 0x4,     // 人形检测
        HCM_IVS_FACEETE = 0x8,        // 人脸检测
        HCM_IVS_SMD = 0x10,           // 有人告警
        HCM_IVS_OD = 0x20,            // 视频遮挡检测
        HCM_IVS_MOTORCYCLE = 0X40,    // 摩托车-电动车检测
        HCM_IVS_LEAVETHEPOST = 0X80,  // 离岗检测
        HCM_IVS_ALL = 0xFFFFFFFF,     // 支持所有功能
    } HCM_IVS_FUNCTION;

    // 遗留物体/消防通道占用 侦测数据结构
    typedef struct HCM_LOSEOBJ_S  // size 1024
    {
        INT bEnable;      // 使能
        CHAR bMode;       // 检测模式 0消防通道占用 1遗留物
        INT sensitivity;  // 灵敏度
        INT lifetime;  // 遗留/占用最长时间 超过这个时间则认为是背景 单位秒(S)
        INT losttime;                      // 存在多久则认为是遗留物/消防通道占用
                                           // 单位秒(S)
        HCI_AREA_RECT_S stLoseobjArea[4];  // 遗留物体侦测区域
        HCM_SEG_TIME_S stSchTime;          // 布防时间
        HCM_ALARM_HANDLE_S stAlarmHandle;  // 报警处理

        CHAR res[128];
    } PACKED HCM_LOSEOBJ;

    // 区域入侵检测
    typedef struct HCM_AREA_INVADING_S
    {
        INT bEnable;                       // 使能
        INT sensitivity;                   // 灵敏度
        HCI_AREA_RECT_S stAreaRect[4];     // 侦测区域
        HCM_SEG_TIME_S stSchTime;          // 布防时间
        HCM_ALARM_HANDLE_S stAlarmHandle;  // 报警处理
        CHAR bUniteIOEnable;               // 配合IO报警一起使用？
        CHAR dwAlarmOutType;               // 0  输出常开， 1 常闭
        CHAR dwAlarmAudio;                 // 报警声音开关

        CHAR res[134];
    } PACKED HCM_AREA_INVADING;

    // 遮挡报警 数据结构
    typedef struct HCM_OD_ALM_S  // size  912
    {
        INT bEnable;                       // 使能
        INT sensitivity;                   // 灵敏度
        HCI_SCHWEEK_TIME_S stSchTime;      // 布防时间
        HCM_ALARM_HANDLE_S stAlarmHandle;  // 报警处理
        CHAR bUniteIOEnable;               // 配合IO报警一起使用？
        CHAR dwAlarmOutType;               // 0  输出常开， 1 常闭
        CHAR dwAlarmAudio;                 // 报警声音开关

        CHAR res[253];
    } PACKED HCM_OD_ALM;

    typedef struct HCM_PEDELEC_ALM_S
    {
        INT bEnable;                       // 使能
        INT sensitivity;                   // 灵敏度
        HCI_AREA_RECT_S stAreaRect[4];     // 侦测区域
        HCM_SEG_TIME_S stSchTime;          // 布防时间
        HCM_ALARM_HANDLE_S stAlarmHandle;  // 报警处理
        CHAR bUniteIOEnable;               // 配合IO报警一起使用？
        CHAR dwAlarmOutType;               // 0  输出常开， 1 常闭
        CHAR dwAlarmAudio;                 // 报警声音开关

        CHAR res[134];
    } PACKED HCM_PEDELEC_ALM;

    typedef struct HCM_SMART_TRACK_S  // size 825
    {
        CHAR bEnable;       // 使能
        CHAR byTrackSpeed;  // 跟踪速度 1-50
        CHAR byTrackMode;   // 跟踪模式 0.丢失后保持 1.丢失后返回预置位
        CHAR byPreset;      // 返回预置位
        INT dwLostTime;     // 丢失超时返回值 秒
        CHAR res[112];
    } PACKED HCM_SMART_TRACK;

    typedef struct HCM_LEAVETHEPOST_ALM_S  // size 825
    {
        INT bEnable;                                  // 使能
        INT sensitivity;                              // 灵敏度
        HCI_AREA_RECT_S stAreaRect[DETECT_AREA_NUM];  // 侦测区域
        HCM_SEG_TIME_S stSchTime;                     // 布防时间
        HCM_ALARM_HANDLE_S stAlarmHandle;             // 报警处理
        CHAR bUniteIOEnable;                          // 配合IO报警一起使用？
        CHAR dwAlarmOutType;                          // 0  输出常开， 1 常闭
        CHAR dwAlarmAudio;                            // 报警声音开关
        CHAR dwAlarmAudioType;                        // 报警声音类型
        INT dwLostTime;                               // 离岗位超时时间 分钟
        CHAR res[129];
    } PACKED HCM_LEAVETHEPOST_ALM;

    // 功能: 智能分析算法的配置
    // 说明: 操作(写)
    // 命令:	HCI_CFG_LOSTOBJ
    typedef struct _HCM_IVS_CONFIG_S
    {
        UINT Mask;
        HCM_AREA_INVADING stAreaInvading;        // 区域入侵
        HCM_OD_ALM stodAlm;                      // 遮挡报警
        HCM_PEDELEC_ALM stPedelecAlm;            // 电动车报警
        HCM_SMART_TRACK stPtzTrack;              // 人形PTZ跟踪
        HCM_LEAVETHEPOST_ALM stLeaveThePostAlm;  // 离岗报警
        CHAR byRes[2438];
    } PACKED HCM_IVS_CONFIG;

    typedef struct _HCM_IRTEMP_CHECK_S
    {
        UCHAR bHTEnable;  // 黑体使能
        UCHAR bRse1[3];
        HCI_AREA_S stIRRect;   // IR位置
        HCI_AREA_S stRGBRect;  // 彩色位置
        INT nTmepoffset;
        UCHAR byRes[16];
    } PACKED HCM_IRTEMP_CHECK_S;

    // 功能: 热成像设置
    // 说明: 操作(写)
    //  HCI_CFG_IR_TEMP
    typedef struct _HCM_IRTMEP_S
    {
        UCHAR bHTEnable;  // 黑体使能
        UCHAR bRse1[3];
        HCI_AREA_S stHTRect;           // 黑体位置
        FLOAT fHTTemp;                 // 黑体温度值
        HCM_IRTEMP_CHECK_S stIrCheck;  // 位置矫正
        UCHAR byRes[200];
    } PACKED HCM_IRTMEP_S;

    typedef struct _HCM_PUXING_UPDATA_PARAM
    {
        UINT u16PXBatVoltage;
        UINT u16PXDistance;
        CHAR byIMEI[16];   // IMEI号
        CHAR byICCID[21];  // ICCID SIM 卡标识
        UCHAR byCSQ;       // 4G信号值
        UINT nHeartPeriod;
        CHAR byFilename[12];
        CHAR res[16];
    } PACKED HCM_PUXING_UPDATA_PARAM;

    typedef struct _HCM_PUXING_MCU_PARAM_S
    {
        USHORT u16UartErrMaxCount;    // 串口故障最大计数值
        USHORT u16HearBeatMaxTime;    // 心跳间隔时间 单位分钟
        USHORT u16CarInMaxDistance;   // 车辆入场开始距离 单位 厘米
        USHORT u16CarInMaxCount;      // 车辆入场最大计数值
        USHORT u16CarOutMaxCount;     // 车辆出场最大计数值
        USHORT u16CarOutMaxDistance;  // 开始离场距离 单位 厘米
        USHORT u16LaserMaskMaxCount;  // 激光遮挡数值
        USHORT u16LaserTaskCycle;     // 运行逻辑周期 单位 毫秒
        UCHAR u8Res[112];             // 保留
    } PACKED HCM_PUXING_MCU_PARAM;

#endif

    typedef struct _HCM_SYSDATE_TIME
    {
        int year;
        int month;
        int day;
        int hour;
        int minute;
        int second;
    } PACKED HCM_SYSDATE_TIME;

    typedef struct _HCM_FILE_LIST
    {
        int iFileNum;
        char szFileList[HCI_MAX_FILE_NUM][50];
    } PACKED HCM_FILE_LIST;

    typedef struct _HCM_PLAY_FILE_T_S
    {
        FILE *pFile;
        int nFileType;
        int bFirst;
        int bOpen;
        int bNeedKeyFrame;

        unsigned int nSendFrameTime;
        unsigned int nLastPts;
        unsigned int nLastFrameIndex;

        unsigned int nVideoFrameNo;
        unsigned int nAudioFrameNo;

        long tmStart;
        long tmEnd;

        long m_timestart;
        long m_timeend;

        unsigned int m_posstart;
        unsigned int m_posend;

        int fileLen;

        unsigned int m_index;
        int m_imageno;

        int m_checktimestamp;

        int nPlaySpeed;
        int bDownload;
        int nPlayState;

        int findHand;

        int channle;
    } PACKED HCM_PLAY_FILE_T_S;

    // DEFAULT_CFG
    typedef struct _HCM_SENSOR_DEFAULT_CFG_S  //
    {
        // 色彩
        UCHAR byBrightness;  // 亮度 			0 ~ 255
        UCHAR byHue;         // 色度			0 ~ 255
        UCHAR byContrast;    // 对比度		0 ~ 255
        UCHAR bySaturation;  // 饱和度		0 ~ 255
        UCHAR bySharpness;   // 锐度			0 ~ 255
        UCHAR byGamma;       // gamma			0 ~ 255
        // 白平衡
        UCHAR byAutoAwb;   // 自动白平衡 	0自动, 1 手动
        UCHAR byAwbRed;    // 白平衡 红 	0 ~ 255
        UCHAR byAwbGreen;  // 白平衡 绿 	0 ~ 255
        UCHAR byAwBblue;   // 白平衡 蓝 	0 ~ 255
        // 增益
        UCHAR byAutoAgc;       // 自动增益 		0自动, 1 手动
        UCHAR byMaxSysGain;    // 最大增益值 AGain * DGain * ISPDGain 0~255
        UCHAR byMaxAgc;        // 最大自动模拟增益 0 ~ 255
        UCHAR byAutoDGainMax;  // 最大自动数字增益

        UCHAR byManualAGain;        // 手动模拟增益 0 ~ 255
        UCHAR byManualDGain;        // 手动数字增益 0 ~ 255
        UCHAR byManualAGainEnable;  // 手动模拟增益使能 0 自动 1 手动
        UCHAR byManualDGainEnable;  // 手动数字增益使能 0 自动 1 手动

        // 背光补偿
        UCHAR byBlcLevel;  // 补偿值;		0 ~ 255
        // 曝光
        UCHAR byAutoExposure;  // 0自动 1 手动
        USHORT wExpTimeMax;    // 自动曝光快门最大值
        USHORT wExpoSuretime;  /*手动曝光时间		*/

        UCHAR byFrameTurbo;  // 高帧率模式  	, 0关, 1 开

        UCHAR byAntiFog;         // 去雾
        UCHAR byAntiFalseColor;  // 去伪彩
        UCHAR byAntiDIS;         // 去抖
        UCHAR byRotate;          // 旋转

        UCHAR bySceneMode;  // 场景模式  0----红外室外 1---红外室内

        UCHAR byAwbStyleRed;     // 白平衡风格 红 0-255
        UCHAR byAwbStyleGreen;   // 白平衡风格 绿 0-255
        UCHAR byAwbStyleBlue;    // 白平衡风格 蓝 0-255
        UCHAR byAwbAutoMode;     // 白平衡模式 ，自动时有效 0-4
        UCHAR byAEStrategyMode;  // 曝光策略	  ; 0高光优先，1低光优先
        UCHAR byDefaultFileEn;   // sensor默认值文件是否启用

        UCHAR byRes[127];  // 预留
    } HCM_SENSOR_DEFAULT_CFG_S;

    typedef struct _HCM_SCENE_DEFAULT_CFG_S  //
    {
        // 光圈
        UCHAR byAutoIris;  // 自动光圈		0自动, 1开启
        // 彩转黑
        UCHAR byCtb;  // 彩转黑 		0关(彩色),   1 开(自动)，2 黑白
        // 场景
        UCHAR byMirror;  // 镜向			0关,   1 开
        UCHAR byFlip;    // 翻转 			0关,   1 开

        UCHAR byPwdFreq1;  // 照明频率1 	0 60HZ,	1 50HZ

        // 红外
        UCHAR byIRCFMode;          // IR模式;		0 电平 1PWM
        UCHAR byInfraredLampType;  // 红外灯类型;	0 红外 1 白光

        UCHAR byDRCLevel;        // 数字宽动态		 0 ~ 255
        UCHAR bySensorWDR;       // 合帧宽动态 		0关闭,   1 开启
        UCHAR bySensorWDRLevel;  // 合帧宽动态强度		 0 ~ 255

        UCHAR byIRDay2NigLevel;  // 彩转黑 灵敏度值(视频检测有效)
        UCHAR byIRNig2DayLevel;  // 黑转彩 灵敏度值(视频检测有效)

        UCHAR byLensCorrection;  // 镜头校正		0: 关   1: 开

        UCHAR by3DNR;  // 3D 降噪		0: 关	1: 低 2: 中 3: 高

        UCHAR byInfraredDetectMode;  // 0-- 视频检测   1-- 时间控制        2 --光敏检测
        UCHAR byIRCutLevel;  // IRCUT切换             0 --低电平有效 1 --高电平有效
                             // 为夜晚模式
        UCHAR byphotoresistorLevel;  // 光敏电阻            0 --低电平有效 1
                                     //--高电平有效 		为黑夜 2 自动
        UCHAR
        byInfraredLamp;  // 红外灯切换      0 --低电平有效 1-- 高电平有效 打开红外灯
        HCI_DATE_S uDayDetecttime;    // 转白天检测时间
        HCI_DATE_S uNigntDetecttime;  // 转夜晚检测时间
        UCHAR byirtime;               // 光敏电阻模式  黑转彩切换时间0到60秒
        UCHAR byirCtoBtime;           // 光敏电阻模式彩转黑切换时间0到60秒
        UCHAR bylowFarmeRate;         // 降帧处理
        UCHAR byLedControl;           // 0  自动   1 开   2 关
        UCHAR byHCL;                  // 强光抑制
        UCHAR byWLedOpenLevel;        // 白光灯打开的阀值，自动彩色时有效
        UCHAR stClipMode;             // 裁剪模式 0压缩 1裁剪
        UCHAR byShaDing;              // 镜头阴影较正
        UCHAR byWLedCloseLevel;       // 白光灯关闭的阀值，自动彩色时有效
        UCHAR byLightingIntensity;    // 白光的亮度
        UCHAR byWLedControl;          // 0  自动   1 开   2 关 白光灯控制
        UCHAR byIrledIntensity;       // irled 红外灯 亮度 0-50
        UCHAR byNight2DayLevel;       // ADC光敏黑转彩切换阈值
        UCHAR byDay2NightLevel;       // ADC光敏彩转黑切换阈值

        UCHAR byRes[128];  // 预留
    } HCM_SCENE_DEFAULT_CFG_S;

    typedef struct _HCM_SYS_DEFAULT_CFG_S  //
    {
        UCHAR byLanguange;    // 0 中文 1英文 2 繁中 3 日文 4 俄文
        UCHAR byVOdev;        // VO视频设备 VIDEO_VO_TYPE_E
        UCHAR byAfLensType;   // AF类型 0定焦 1 Uart变焦 2 GPIO变焦
        UCHAR byAfSerialChn;  // 自动变倍串口号 0: UART0 1: UART1 255:不变倍
        UCHAR byGnssType;     // 0 无 1 4G内置 2 外置
        CHAR szDeviceName[MAX_STRING_64_LEN];  // 设备名称
        CHAR szUserPasswd[MAX_STRING_32_LEN];  // 设备用户密码

        UCHAR byRes[348];  // 预留
    } HCM_SYS_DEFAULT_CFG_S;

    typedef struct _HCM_NET_DEFAULT_CFG_S  //
    {
        //----------------有线网络
        UINT dwIPAddr;       // 默认ETH IP地址
        UINT dwMaskAddr;     // 默认ETH 掩码地址
        UINT dwGatewayAddr;  // 默认ETH 网关地址
        UCHAR bNetDhcp;      // 有线dhcp  0 关 1开
        UINT dwMainDns;      // 首选DNS
        UINT dwSubDns;       // 备选DNS

        //---------------无线网络 WIFI
        UCHAR byWiFiType;        // WiFi类型 HIFACE_WIFITPYE
        UCHAR bWiFiEnabled;      // WIFI 使能 0 关 1 开
        UCHAR byWiFiDhcp;        // WIFI dhcp  0 关 1开
        UINT dwWiFiIPAddr;       // 默认WiFi 手动 IP地址
        UINT dwWiFiMaskAddr;     // 默认WiFi 手动 掩码地址
        UINT dwWiFiGatewayAddr;  // 默认WiFi 手动 网关地址
        CHAR byWiFiSSID[32];     // 默认连接WIFI SSID
        CHAR byWiFiPasswd[32];   // 默认连接WIFI Passwd
        UCHAR byEncryptType;     // 默认连接WIFI 加密类型 0 wep 1 wpa 2 open

        //---------------无线网络 4G
        UCHAR b4GEnabled;             // 4G 使能 0 关 1 开
        UCHAR b4GAutoAPN;             // 自动获取APN 0手动 1 自动
        CHAR by4GAPNName[32];         // 手动APN 名称
        CHAR by4GAPNUserName[32];     // 手动APN 用户名
        CHAR by4GAPNPasswd[32];       // 手动APN 密码
        UCHAR b4GDNSTpye;             // 4G DNS 类型 0系统DNS 1 4G DNS
        CHAR b4GHeartbeatServer[32];  // 4G 心跳服务器地址
        UCHAR byRes[128];             // 预留
    } HCM_NET_DEFAULT_CFG_S;

    typedef struct _HCM_NETSERVER_DEFAULT_CFG_S  //
    {
        UINT dwWebPort;  // web服务端口
        //---------------平台接入
        CHAR byHttpServer[128];  // Http 服务器地址
        CHAR byWsServer[128];    // Websocket 服务器地址
        UCHAR byProtocolCode;    // 协议码
        //---------------Smtp服务器配置
        CHAR bySMTPServer[64];      // SMTP 服务器地址
        UINT dwSMTPPort;            // SMTP 服务器端口
        CHAR bySMTPUserName[32];    // SMTP 服务器用户名
        CHAR bySMTPPasswd[32];      // SMTP 服务器密码
        CHAR bySMTPMail[32];        // SMTP 发件人邮箱
        CHAR bySMTPRecipients[32];  // SMTP 收件人邮箱
        //---------------FTP
        CHAR byFTPServer[64];    // FTP 服务器地址
        UINT dwFTPPort;          // FTP 服务器端口
        CHAR byFTPUserName[32];  // FTP 服务器用户名
        CHAR byFTPPasswd[32];    // FTP 服务器密码
        CHAR byFTPPath[128];     // FTP 服务器密码
        //---------------GB28281
        CHAR bySIPServerID[32];    // SIP 服务器ID
        CHAR bySIPServerAddr[64];  // SIP 服务器地址
        CHAR bySIPUserID[64];      // SIP 服务器用户ID
        CHAR bySIPMediaChnID[32];  // SIP 服务媒体ID
        UINT dwSIPValidity;        // SIP 注册有效期
        UINT bySIPPort;            // SIP 服务器端口
        UINT bySIPLocalPort;       // SIP 服务器本地端口
        CHAR bySIPPasswd[32];      // SIP 服务器密码
        CHAR bySIPAlarmChnID[32];  // SIP 报警通道ID
        UINT dwSIPHeartbeatCycle;  // SIP 心跳周期
        UCHAR bySIPHeartbeatNum;   // SIP 最大心跳次数
        //---------------RTSP
        UCHAR bRTSPAuthentication;  // rtsp 鉴权使能
        UINT dwRTSPPort;            // rtsp 端口
        UCHAR dwRTSPMainAudioEn;    // rtsp 主码流音频使能
        UCHAR dwRTSPSubAudioEn;     // rtsp 次码流音频使能

        UCHAR byRes[256];  // 预留
    } HCM_NETSERVER_DEFAULT_CFG_S;

    typedef struct _HCM_AVENCODE_DEFAULT_CFG_S  //
    {
        // audio
        UCHAR byAudioEn;          // 音频使能
        UCHAR byAudioInputType;   // 音频输入类型
        UCHAR byAudioEncodeType;  // 音频编码类型
        UINT dwAudioBitRate;      // 音频码率
        UINT dwAudioSmpRate;      // 音频采样率
        UINT dwAudioInputVol;     // 音频输入音量
        UINT dwAudioOutputVol;    // 音频输出音量
        // video main
        UCHAR byMainChnProfile;    // 主码流编码模式
        UCHAR byMainChnVencType;   // 主码流编码协议 H264/H265
        UINT byMainChnPicWidth;    // 主码流宽
        UINT byMainChnPicHeight;   // 主码流高
        UCHAR byMainChnRcMode;     // 主码流码流类型 变码流/定码流
        UINT byMainChnSmpRate;     // 主码流码率
        UCHAR byMainChnFrameRate;  // 主码流码帧率
        UCHAR byMainChnGop;        // 主码流码I帧间隔
        // video sub
        UCHAR bySubChnProfile;    // 次码流编码模式
        UCHAR bySubChnVencType;   // 次码流编码协议 H264/H265
        UINT bySubChnPicWidth;    // 次码流宽
        UINT bySubChnPicHeight;   // 次码流高
        UCHAR bySubChnRcMode;     // 次码流码流类型 变码流/定码流
        UINT bySubChnSmpRate;     // 次码流码率
        UCHAR bySubChnFrameRate;  // 次码流码帧率
        UCHAR bySubChnGop;        // 次码流码I帧间隔
        // video Third
        UCHAR byThirdChnProfile;    // 次码流编码模式
        UCHAR byThirdChnVencType;   // 次码流编码协议 H264/H265
        UINT byThirdChnPicWidth;    // 次码流宽
        UINT byThirdChnPicHeight;   // 次码流高
        UCHAR byThirdChnRcMode;     // 次码流码流类型 变码流/定码流
        UINT byThirdChnSmpRate;     // 次码流码率
        UCHAR byThirdChnFrameRate;  // 次码流码帧率
        UCHAR byThirdChnGop;        // 次码流码I帧间隔
        // Sanp
        UINT bySanpChnPicWidth;   // 抓拍通道宽
        UINT bySanpChnPicHeight;  // 抓拍通道高
        UCHAR bySanpChnQfactor;   // 抓拍通道编码质量

        UCHAR byRes[64];  // 预留
    } HCM_AVENCODE_DEFAULT_CFG_S;

    typedef struct _HCM_SMARTEVENT_DEFAULT_CFG_S  //
    {
        UCHAR byRes[256];  // 预留
    } HCM_SMARTEVENT_DEFAULT_CFG_S;

    typedef struct _HCM_DEFAULT_CFG_S  //
    {
        UCHAR byDefaultFileTime[32];     // 配置文件生成时间
        UCHAR byDefaultFileVar[32];      // 配置文件版本号
        UCHAR byDefaultFileReadme[256];  // 配置文件说明

        HCM_SYS_DEFAULT_CFG_S stSysDefaultCfg;  // 系统默认值
        HCM_NET_DEFAULT_CFG_S stNetDefaultCfg;  // 网络设备默认值(NET 4G WIFI)
        HCM_NETSERVER_DEFAULT_CFG_S
        stNetServerDefaultCfg;                     // 网络服务默认值(FTP HTTP RTSP NTP等等)
        HCM_SENSOR_DEFAULT_CFG_S stSensorCfg;      // Sensor 默认参数配置
        HCM_SCENE_DEFAULT_CFG_S stSceneCfg;        // Scene 默认参数配置
        HCM_AVENCODE_DEFAULT_CFG_S stAVEncodeCfg;  // 音频 视频 编码 默认参数配置
        HCM_SMARTEVENT_DEFAULT_CFG_S stSmartEventCfg;  // 智能事件 默认参数配置

        UCHAR byRes[1024];  // 预留
    } PACKED HCM_DEFAULT_CFG_S;

    typedef struct _HCM_PHONE_UUID_CFG_S  //
    {
        INT dwUUIDType;          // UUID类型 0.不支持 1.TUTK
        UCHAR byPhoneUUID[128];  // UUID
        UCHAR byConfigFlag;      // 是否已经配置

        UCHAR byRes[256];  // 预留
    } PACKED HCM_PHONE_UUID_CFG_S;

    typedef struct _HCM_ISP_EXP_INFO_S  //
    {
        UINT u32ExpTime;   // 曝光时间
        UINT u32AGain;     // 模拟增益
        UINT u32DGain;     // 数字增益
        UINT u32ISPDGain;  // ISP数字增益
        UINT u32Exposure;  // 当前曝光量
        UINT u32Fps;       // 当前帧率
        UINT u32ISO;       // 当前ISO

        UCHAR byRes[256];  // 预留
    } PACKED HCM_ISP_EXP_INFO_S;

#ifdef __cplusplus
}
#endif

#endif
